package com.ww.springboot.es.app.search.service;

import com.ww.springboot.es.dto.EsQueryDTO;
import com.ww.springboot.es.dto.ForecastRecord;
import com.ww.springboot.es.dto.ForecastRecordDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 描述：
 *
 * @author 🧑 ‍wanwei
 * @since 2025-07-30 15:52
 */
public interface IEsSearchToolSvc {

    /**
     * 使用API导出
     */
    void exportWithApi(HttpServletResponse response, EsQueryDTO esQueryDTO) throws IOException;

    /**
     * 使用API导出--快照方式
     */
    void exportWithApiAndScroll(HttpServletResponse response, EsQueryDTO esQueryDTO) throws IOException;

    /**
     * 使用Http直连方式导出
     */
    void exportWithHttp(HttpServletResponse response, EsQueryDTO esQueryDTO) throws IOException;

    /**
     * 使用Http直连方式导出
     */
    void exportWithHttpAggs(HttpServletResponse response, EsQueryDTO esQueryDTO) throws IOException;

    /**
     * demo
     *
     * @param pageRequest
     * @param forecastRecord
     */
    Page<ForecastRecord> demo(PageRequest pageRequest, ForecastRecordDTO forecastRecord);
}
